package com.itany.corejava.code08_集合.list集合;

/**
 * @author MissChen
 * @date 2024年03月04日 16:27
 */

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;

/**
 * 循环提示用户输入一个整数，存放到ArrayList集合中
 * 输入0表示循环结束
 * 删除所有3的倍数的元素
 */
public class Test03_练习 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        List<Integer> list=new ArrayList<>();
        while(true){
            System.out.print("请输入一个整数(0表示结束)");
            int num=sc.nextInt();
            if(num==0){
                break;
            }
            list.add(num);
        }
        System.out.println("删除前的集合:"+list);
        // list=removeList(list);
        list=removeList2(list);
        System.out.println("删除后的集合:"+list);
    }
    // 方式一:普通for循环删除
    public static List<Integer> removeList(List<Integer> list){
        for(int i=list.size()-1;i>=0;i--){
            Integer num=list.get(i);//获取集合中的值
            if(num%3==0){
                list.remove(num);
            }
        }
        return list;
    }

    //方式二:Iterator迭代器删除
    public static List<Integer> removeList2(List<Integer> list){
        Iterator<Integer> it=list.iterator();
        while(it.hasNext()){
            Integer num=it.next();
            if(num%3==0){
                it.remove();
            }
        }
        return list;
    }
}
